NXP i.MX95 Technical Guide - Yocto Support
Yocto Project Overview
The Yocto Project is an open-source collaboration that provides tools, templates, and methods for building custom Linux-based systems for embedded devices.
Yocto itself is not a Linux distribution. Instead, it provides a framework for creating custom embedded Linux distributions tailored for specific hardware platforms.
The Yocto build system is based on the OpenEmbedded build framework and uses BitBake as the build engine. Together, these tools allow developers to generate complete Linux images from source code, including the Linux kernel, bootloader, system libraries, and user-space applications.
Yocto Ecosystem for Verdin i.MX95
The Verdin i.MX95 platform support is built using several Yocto layers maintained by different organizations.
The main contributors are:
- The Yocto Project community, which maintains the OpenEmbedded core infrastructure and build tools.
- NXP, which provides support for the i.MX processor family.
- Toradex, which provides board support packages (BSP) and integration layers for their System on Modules.
In Yocto, software components are organized into layers. Each layer contains metadata and recipes that define how software is fetched, configured, compiled, and packaged into the final Linux image.
Core Yocto Layers
The base layers of the Yocto Project provide the core build infrastructure.
- Poky is the reference distribution of the Yocto Project. It includes the OpenEmbedded build system; bitbake, the task execution engine; and core metadata used to generate Linux distributions.
- meta-openembedded is a collection of community-maintained layers that provide additional packages, libraries, and development tools commonly used in embedded Linux systems.
Then, the NXP-specific:
- meta-freescale provides hardware support and configurations for NXP i.MX processors. It includes, kernel recipes, hardware support packages, device tree support, processor-specific configuration
- meta-freescale-3rdparty adds support for third-party hardware platforms based on NXP i.MX processors.
- meta-freescale-distro provides example distributions and image recipes designed for the development and evaluation of i.MX platforms.
And Toradex provides:
- meta-toradex-bsp-common, which contains common board support configurations shared across Toradex modules. It includes: common kernel configuration, shared device tree components, common hardware support code.
- meta-toradex-nxp provides hardware support for Toradex modules based on NXP processors, including the Verdin i.MX95. It contains: machine configuration files, kernel configuration, bootloader integration, device tree support, hardware-specific drivers.
- meta-toradex-distro provides Toradex Linux distributions and reference images built on top of the Toradex BSP layers.
Toradex Manifest
Toradex provides a repo manifest called toradex-manifest which defines the set of Yocto layers required to build Toradex Linux distributions. The manifest automatically downloads and configures all required repositories for building images using the OpenEmbedded build system. This simplifies setting up the Yocto development environment for Toradex hardware.
Reference Images
Toradex provides two reference images that can be built using the Yocto build system. These images are intended for development, evaluation, and as starting points for custom Linux distributions.
Reference Minimal Image
A minimal Linux system that boots into a command-line interface and includes only essential services and utilities. The name used with bitbake is tdx-reference-minimal-image
Reference Multimedia Image
A feature-rich image that includes graphical support, multimedia frameworks, and development tools used to evaluate hardware acceleration capabilities. The name used with bitbake is tdx-reference-multimedia-image.
Torizon OS
In addition to the reference images, Toradex also provides Torizon OS, a Linux distribution built on top of the same Yocto BSP layers.
Torizon OS includes:
- Container support for application deployment
- OTA update capabilities
- Integration with the Torizon development ecosystem
The following sections describe how to set up the Yocto build environment and generate images for the Verdin i.MX95 platform.